#include <stdio.h>
#include <unistd.h>
#include <sys/shm.h>
#include <string.h>

/*
 * key_t : system V版本的 IPC通信的标识符
 *         Posix 版本
 *ftock函数获取IPC标识符
 *key_t ftock(const char *pathname, int proj_id)
 *     patgname: 填写一个已经存在的文件路径
 *     proj_id: 项目id，使用了8个比特位，传递的时候，传递一个整型
 *key_t 就是一个32位的整数
 */

#define IPC_F 0x98989898

int main()
{
    int shmid = shmget(IPC_F, 1024, IPC_CREAT | 0664);
    if(shmid < 0)
    {
        perror("shmid");
        return 0;
    }

    void *addr = shmat(shmid, NULL, 0);//(shmid,NULL,SHM_RDONLY)会出错
    if(addr == NULL)
    {
        perror("shmat");
        return 0;
    }

    int count = 0;
    while(1)
    {
        char lp[1024] = "i am writer~";
        sprintf(lp,"%s-%d",lp,count++);
        strncpy((char*)addr,lp,1024);
        sleep(1);
    }

    return 0;
}




